在上一步中,您创建了 BeachBall 从地面反弹的动画,但该动画看起来非常生硬。这是因为动画为关键帧之间的迁移使用了线性插值。在 Kanzi Studio 中,您可以使用不同的插值模式创建不同的动画。请参阅更改关键帧之间的插值模式。
在本步骤中,您首先通过移除未使用的动画数据 (Animation Data) 项清理动画,通过在关键帧之间使用贝塞尔插值使弹球动画更流畅,并且让阴影对 BeachBall 的位置作出反应。
当您将属性拖动到动画剪辑编辑器 (Animation Clip Editor) 以创建关键帧,Kanzi Studio 自动将该属性各种特性的动画数据 (Animation Data) 项添加到动画剪辑 (Animation Clip) 项。由于只更改了渲染变换 (Render Transformation) 属性的平移 Y (Translation Y) 和缩放 Y (Scale Y) 特性,您可以删除所有其他动画数据 (Animation Data) 项。
在动画 (Animations) > 动画剪辑 (Animation Clips) 中的素材库 (Library) 右键点击要清理的动画剪辑 (Animation Clip) 项,并选择删除有效关键帧为 1 或 0 的动画 (Delete Animations with One or Zero Effective Keyframes)。
通过这种方式,将删除不含动画所需信息的所有动画数据 (Animation Data) 项。
在本节中,您学习将关键帧之间的线性插值更改为贝塞尔插值,以使动画更流畅。
要使动画更流畅:
在本节中,您将学习使用 Kanzi 绑定将Ground 节点上的阴影纹理尺寸关联到 BeachBall 节点到 Ground 节点的距离。当 BeachBall 节点远离Ground 节点时使阴影更大、更透明。
让阴影对 BeachBall 的位置作出反应:
{@../BeachBall/Node3D.RenderTransformation}.TranslationY+0.4
通过绑定,您可以通过 BeachBall 节点在 y 轴上的位置控制 x 轴上Ground 节点的缩放:BeachBall 节点越高,地面节点上的阴影纹理越大。
Y = {@../BeachBall/Node3D.RenderTransformation}.TranslationY MIX(0.5, 0.0, Y*0.2)
通过绑定,您可以控制 Ground 节点上的阴影纹理(通过 BeachBall 节点在 y 轴上的位置):BeachBall 节点越高,地面节点上的阴影纹理越弱。绑定使用混合函数调整 混合强度 (Blend Intensity) 属性的最终值。您可以使用其他绑定函数调整该值。请参阅绑定表达式参考。
在本教程中,您学习了如何在 Kanzi Studio 中创建简单的关键帧动画。现在,您可以学习如何:
要了解创建Kanzi 应用程序的更多信息,请参阅教程。
要详细了解有关如何控制 Kanzi 中的动画回放,请参阅播放关键帧动画。
要详细了解有关 Kanzi 中的动画,请参阅动画。
要了解有关 Kanzi Studio 功能的更多信息,请参阅使用 ...。